Serial data signal edge detection

ABSTRACT

A clamping circuit clamps a serial data signal between a first high voltage level and a first low voltage level to yield a clamped serial data signal. A first comparator circuit compares the clamped serial data signal to a second high voltage level less than the first high voltage level to yield a high output equal to one just when a voltage of the clamped serial data signal is greater than the second high voltage level. A second comparator circuit compares the clamped serial data signal to second low voltage level greater than the first low voltage level to yield a low output equal to one just when the voltage of the clamped serial data signal is greater than the second low voltage level. An edge circuit detects an edge of the serial data signal from the high output and the low output.

BACKGROUND

Data signals within computing systems are often transmitted from atransmitter to a receiver. The transmitter and the receiver may belocated on the same circuit board or different circuit boards. Thelatter circuit boards may be located in the same computing device, or indifferent devices. One type of data signal is a serial data signal, inwhich the signal changes between a high value corresponding to logic oneand a low value corresponding to logic zero over time.

SUMMARY

An example method includes clamping, by a clamping circuit, a serialdata signal between a first high voltage level and a first low voltagelevel, to yield a clamped serial data signal. The method includescomparing, by a first comparator circuit, the clamped serial data signalto a second high voltage level less than the first high voltage level,to yield a high output equal to one just when a voltage of the clampedserial data signal is greater than the second high voltage level. Themethod includes comparing, by a second comparator circuit, the clampedserial data signal to second low voltage level greater than the firstlow voltage level, to yield a low output equal to one just when thevoltage of the clamped serial data signal is greater than the second lowvoltage level. The method includes detecting, by an edge circuit, anedge of the serial data signal from the high output and the low output.

An example circuit includes a clamping circuit to generate a clampedserial data signal by clamping a serial data signal between a firstclamped voltage level and a second clamped voltage level. The circuitincludes a high comparator circuit to generate a high output of one justwhen a voltage of the clamped serial data signal is greater than a firstcomparison voltage level less than the first clamped voltage level. Thecircuit includes a low comparator circuit to generate a low output ofone just when the voltage of the clamped serial data signal is greaterthan a second comparison voltage level greater than the second clampedvoltage level. The circuit includes an edge circuit to detect an edge ofthe serial data signal from the high output and the low output.

Another example circuit includes means for generating a clamped serialdata signal by clamping a serial data signal between a first clampedvoltage level and a second clamped voltage level. The circuit includesmeans for generating a high output of one just when a voltage of theclamped serial data signal is greater than a first comparison voltagelevel less than the first clamped voltage level. The circuit includesmeans for generating a low output of one just when the voltage of theclamped serial data signal is greater than a second comparison voltagelevel greater than the second clamped voltage level. The circuitincludes means for detecting an edge of the serial data signal from thehigh output and the low output.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The drawings referenced herein form a part of the specification.Features shown in the drawing illustrate only some embodiments of thedisclosure, and not of all embodiments of the disclosure, unless thedetailed description explicitly indicates otherwise, and readers of thespecification should not make implications to the contrary.

FIG. 1 is a block diagram of an example circuit for decoding andreassembling a data signal from an incoming serial data signal.

FIG. 2 is a flowchart of an example method performed by a clampingcircuit of the circuit of FIG. 1.

FIG. 3 is a diagram of an example clamping circuit.

FIG. 4 is a signal diagram of an example clamped serial data signal.

FIG. 5 is a flowchart of an example method performed by comparatorcircuits of the circuit of FIG. 1.

FIG. 6 is a diagram of example comparator circuits.

FIG. 7 is a signal diagram of example high and low outputs.

FIG. 8 is a flowchart of an example method performed by an edge circuitof the circuit of FIG. 1.

FIGS. 9 and 10 are diagrams of different example edge circuits.

FIG. 11 is a timing diagram of example edge detection.

FIG. 12 is a flowchart of an example method performed by a decodercircuit and a reassembly circuit of the circuit of FIG. 1.

FIG. 13 is a table of how an example reassembled data signal ultimatelygenerated from detected edges within an incoming serial data signal.

DETAILED DESCRIPTION

The following detailed description of exemplary embodiments of thedisclosure refers to the accompanying drawings that form a part of thedescription. The drawings illustrate specific exemplary embodiments inwhich the disclosure may be practiced. The detailed description,including the drawings, describes these embodiments in sufficient detailto enable those skilled in the art to practice the disclosure. Thoseskilled in the art may further utilize other embodiments of thedisclosure, and make logical, mechanical, and other changes withoutdeparting from the spirit or scope of the disclosure. Readers of thefollowing detailed description should, therefore, not interpret thedescription in a limiting sense, and only the appended claims define thescope of the embodiment of the disclosure.

As noted in the background, serial data signals are commonly transmittedfrom a transmitter to a receiver. When a receiver receives an incomingserial data signal, the receiver has to decode the signal correctly inorder to maintain the fidelity of the signal. Existing decodingtechniques generally rely on recovering clocks from the incoming serialdata signal. However, such techniques require a high quality incomingserial data signal that has low jitter and good signal integrity. Assuch, these decoding techniques can require high quality and thus highcost clock circuitry, while at the same time limiting the distances overwhich the serial data signals can be transmitted. Furthermore, the typesof printed circuit boards, or logic boards, that can be satisfactorilyemployed for these techniques usually have to have low insertion loss,which also adds cost.

One way to overcome these drawbacks is to rely on a decoding solution inwhich clocks do not have to be recovered from incoming data signals. Anexample of such an approach is described in the pending patentapplication entitled “Rising and falling edge detection and re-assemblyfor high speed serial data communications,” filed on Jun. 10, 2014, andassigned patent application Ser. No. 14/301,190. The decoding approachdescribed in this referenced patent application relies upon detectingthe rising and falling edges of an incoming data signal to suitablyreassemble the data signal. The techniques disclosed in the presentpatent application provide for manners by which the rising and fallingedges of an incoming data signal can be detected without relying uponrecovered clocks from the data signals, and thus can be used in incomingdata signal reassembly approaches such as that described in thereferenced patent application.

FIG. 1 shows a circuit 100 for reassembling a data signal from anincoming serial data signal. The circuit 100 includes a clamping circuit102, a high comparator circuit 104, a low comparator circuit 106, anedge circuit 108, a decoder circuit 110, and a reassembly circuit 112.Each of the circuits 102, 104, 106, 108, 110, and 112 is now describedin detail.

The clamping circuit 102 of FIG. 1 clamps an incoming serial data signal114 between a high voltage level and a low voltage level to yield aclamped serial data signal 116. FIG. 2 shows an example method 200 thatthe clamping circuit 102 performs to generate the clamped data signal116 from the serial data signal 114. When the voltage of the serial datasignal 114 is greater than a high voltage level, the clamping circuit102 clamps or sets the voltage of the clamped data signal 116 to thishigh voltage level (202). When the voltage of the serial data signal 114is less than a low voltage level, the clamping circuit 102 clamps orsets the voltage of the clamped data signal 116 to this low voltagelevel (204).

FIG. 3 shows an example implementation of the clamping circuit 102. Theclamping circuit 102 includes an input buffer 302 and two diodes 304 and306, which can be zener diodes. The incoming serial data signal 114 isan input of the input buffer 302, and an output of the buffer 302 passesbetween the two diodes 304 and 306 to result in the clamped serial datasignal 116. The anode of the diode 304 is connected to a high voltagelevel V_(HIGH), and the anode of the diode 306 is connected to a lowvoltage level V_(LOW). The cathodes of the diode 304 and 306 areconnected to one another.

FIG. 4 shows an example of the clamped serial data signal 116 that theclamping circuit 102 generates from the incoming serial data signal 114.The incoming serial data signal 114 has a voltage between V_(MIN) andV_(MAX). The serial data signal 114 may be of low quality, sufferingfrom variation towards each of these voltages. The clamped data signal116 by comparison has a voltage clamped to V_(LOW) when the serial datasignal 114 is below V_(LOW), and clamped to V_(HIGH) when the serialdata signal is above V_(HIGH), such that it is a higher quality signal.V_(MIN) may be 0% of V_(MAX), V_(LOW) may be 10% of V_(MAX), andV_(HIGH) may be 90% of V_(MAX) in one implementation.

The high comparator circuit 104 of FIG. 1 generates a high output 118and the low comparator circuit 106 of FIG. 1 generates a low output 120,based on the clamped serial data signal 116. FIG. 5 shows an examplemethod 500 that the comparator circuits 104 and 106 perform to generatethe high output 118 and the low output 120, respectively. The highcomparator circuit 104 compares the clamped data signal 116 to acomparison high voltage level to set the high output 118 to one just andonly when the voltage of the clamped signal 116 is greater than thecomparison high voltage level (502); otherwise, the high output 118 iszero. The low comparator circuit 106 compares the clamped data signal116 to a comparison low voltage level to set the low output 120 to onejust and only when the voltage of the clamped signal 116 is greater thanthe comparison low voltage level (504); otherwise, the low output 120 iszero.

FIG. 6 shows an example implementation of the comparator circuits 104and 106. The high comparator circuit 104 includes a comparator 602, andthe low comparator circuit 106 includes a comparator 604. The clampedserial data signal 116 is connected to the high input of each of thecomparators 602 and 604. The low input of the comparator 602 isconnected to a comparison high voltage level V_(CHIGH), and the lowinput of the comparator 604 is connected to a comparison low voltagelevel V_(CLOW). V_(CHIGH) may be 80% of V_(MAX), and V_(CLOW) may be 20%of V_(MAX) in one implementation. The output of the comparator 602 isthe high output 118, and the output of the comparator 604 is the lowoutput 120.

FIG. 7 shows an example of the high output 118 and the low output 120that the comparator circuits 104 and 106 generate from the clampedserial data signal 116. The high output 118 is indicated as O_(H) andthe low output 120 is indicated as O_(L). In time period 702, thevoltage of the clamped data signal 116 is less than both V_(CLOW) andV_(CHIGH), so both the low output 120 and the high output 118 are eachzero. In time period 704, the voltage of the clamped data signal 116 isgreater than V_(CLOW) but less than V_(HIGH), so the low output 120 isone and the high output 118 is zero. In time period 706, the voltage ofthe clamped signal 116 is greater than both V_(CLOW) and V_(CHIGH), soboth the low output 120 and the high output 118 are each one. In timeperiod 708, like the time period 704, the voltage of the clamped signal116 is greater than V_(CLOW) but less than V_(CHIGH), so the low output120 is one and the high output 118 is zero. In time period 710, like thetime period 702, the voltage of the clamped signal 116 is less than bothV_(CLOW) and V_(CHIGH), so both the low output 120 and the high output118 are each zero.

The edge circuit 108 of FIG. 1 detects rising and falling edges of theincoming serial data signal 114 from the high output 118 and the lowoutput 120 to yield detected edges and corresponding unit intervals(UIs) 122. A UI is the minimum time interval between condition changesof a data transmission signal. Time lengths are measured using aninternal clock of the edge circuit 108, and not based on a recoveredclock of the serial data signal 114.

FIG. 8 shows an example method 800 that the edge circuit 108 performs togenerate the detected edges and UIs 122. A rising edge is detected whena first logical test of the high output 118 and the low output 120changes from zero to one (802). A falling edge is detected when a secondlogical test of the high output 118 and the low output 120 changes fromone to zero (804).

In one implementation, the first logical test is both a logicalexclusive inverse OR (XNOR) operation of the high output 118 and the lowoutput 120 being equal to one and a logical AND operation of the highoutput 118 and the low output 120 being equal to one. In thisimplementation, the second logical test is a logical XNOR operation ofthe high output 118 and the low output 120 being equal to one and alogical OR operation of the high output 118 and the low output 120 beingequal to zero. In another implementation, the first logical test is alogical AND operation of the high output 118 and the low output 120being equal to one, and the second logical test is a logical inverse OR(NOR) operation of the high output 118 and the low output 120 beingequal to one.

When an edge is detected, a length of time that elapsed between thisedge and the immediately previous detected edge is tracked or recorded(806). Each such length of time is divided by an interval time length(808), which is the number of UIs corresponding to the currentlydetected edge, and is the number of UIs that the incoming serial datasignal 114 had a value corresponding to the previous edge. For example,a rising edge may be detected, and then a falling edge detectedthereafter. The length of time between detection of the rising edge andthe detection of the falling edge may be is divided by a standardinterval time length for the incoming serial data signal 114 to yieldthe number of UIs corresponding to the falling edge and which is thenumber of UIs that the incoming data signal had a high value (i.e.,logic one). Tracking the lengths of time that elapsed between detectededges and dividing the lengths of time by a standard interval timelength can be implemented via existing, standard, or another type ofcircuit, using appropriate circuitry.

FIG. 9 shows an example implementation of a portion of the edge circuit108. The edge circuit 108 includes an XNOR circuit 902, an AND circuit904, an OR circuit 906, and AND circuits 908 and 910. The high output118 and the low output 120 are input into each of the XNOR circuit 902,the AND circuit 904, and the OR circuit 906, which perform a logicalXNOR operation, a logical AND operation, and a logical OR operation,respectively, of the outputs 118 and 120. The output of the XNOR circuit902 is input into each of the AND circuits 908 and 910. The output ofthe AND circuit 904 is also input into the AND circuit 908, whichperforms a logical AND operation of its inputs. The output of the ORcircuit 906 is also input into the AND circuit 910, which performs alogical AND operation of its inputs. When the output of the AND circuit908 changes from zero to one, a rising edge is detected. When the outputof the AND circuit 910 changes from zero to one, a falling edge isdetected.

FIG. 10 shows another example implementation of the same portion of theedge circuit 108. The edge circuit 108 includes an AND circuit 1002 anda NOR circuit 1004. The high output 118 and the low output 120 are inputinto each of the AND circuit 1002 and the NOR circuit 1004, whichperform a logical AND operation and a logical NOR operation,respectively, of the outputs 118 and 120. When the output of the ANDcircuit 1002 changes from zero to one, a rising edge is detected. Whenthe output of the NOR circuit 1004 changes from zero to one, a fallingedge is detected.

FIG. 11 shows an example timing diagram in relation to the high output118, indicated as O_(H), and the low output 120, indicated as O_(L),over the time periods 702, 704,706, 708, and 710 of FIG. 7. Attransition 1102 from the time period 704 to the time period 706 thefirst logical test changes from zero to one, indicating that a risingedge has been detected. The time that has elapsed between this detectionof a rising edge and detection of an immediately preceding falling edge(not shown in FIG. 11) divided by the standard interval time length isthe number of UIs that the incoming serial data signal 114 had a low(i.e., logic zero) value prior to changing to a high (i.e., logic one)value at the transition 1102. At transition 1104 from the time period708 to the time period 710 the second logical test changes from one tozero, indicating that a falling edge has been detected. The time thathas elapsed between this detection of the falling edge and detection ofthe immediately preceding rising edge (i.e., at the transition 1102)divided by the standard interval time length is the number of UIs thatthe serial data signal 116 had a high (i.e., logic one) value prior tochanging to a low (i.e., logic zero) value at the transition 1104.

The decoder circuit 110 of FIG. 1 decodes logic ones and logic zeros,and the number of UIs for each logic one and each logic zero, within theincoming serial data signal 114 from the detected edges and the UIs 122output by the edge circuit 108. The output of the decoder circuit 110 isthus logic zeros, logic ones, and the number of UIs for each logic oneand each logic zero 124. The reassembly circuit 112 of FIG. 1 thengenerates a reassembled data signal 126 corresponding to the serial datasignal 114, from the logic zeros, logic ones, and the number of UIs 124.

FIG. 12 shows an example method 1200 that the decoder circuit 110 andthe reassembly circuit 112 perform. As shown in FIG. 12, the method 1200is performed after the edges have been detected. However, in actuality,parts of the method 1200 is performed each time an edge is detected,where part 1202 is performed for a detected falling edge, and part 1204is performed for a detected rising edge. Part 1206 is performed eachtime an edge is detected, regardless of whether it is a falling edge ora rising edge.

Each logic one and the number of UIs corresponding to the length of timefor each logic one is decoded (1202), as is each logic zero and thenumber of UIs corresponding to the length of time for each logic zero(1204), by the decoder circuit 110. Specifically, when a detected edgeis a rising edge, such that the immediately prior detected edge is afalling edge, a logic zero is detected. The number of UIs for the logiczero is the number of UIs that elapsed between the detected rising edgeand the immediately prior detected falling edge. Similarly, when adetected edge is a falling edge, such that the immediately priordetected edge is a rising edge, a logic one is detected. The number ofUIs for the logic one is the number of UIs that elapsed between thedetected falling edge and the immediately prior detected rising edge.

The output of parts 1202 and 1204 is thus the logic zeros, logic ones,and the number of UIs 124. The data signal 114 is then reassembled fromthese decoded logic ones, logic zeros, and numbers of UIs 124 (1206), bythe reassembly circuit 112. The data signal may be reassembled in serialform, like the incoming serial data signal 114, or may be reassembled inparallel form. The decoder circuit 110 and the reassembly 126 can beimplemented via existing, standard, or other types of circuits, usingappropriate circuitry.

FIG. 13 is a table depicting example performance of the method 1200 bythe decoder circuit 110 and the reassembly circuit 112, ultimatelyresulting in generation of the reassembled data signal 126 by thereassembly circuit 112 from the detected edges and the UIs 122 input tothe decoder circuit 110. For the initial detected rising edge after oneUI has elapsed, the decoder circuit 110 decodes a logic zero as havingoccurred for one UI. For the detected falling edge after three UIs haveelapsed, the decoder circuit 110 decodes a logic one as having occurredfor three UIs. For the last detected rising edge after one UI haselapsed, the decoder circuit 110 decodes a logic zero as having occurredfor one UI. As such, the reassembly circuit 112 generates thereassembled data signal 126 as 0x01110, in either serial or parallelform.

The edge detection techniques described herein provide for the detectionof rising and falling edges to decode serial data transmitted within anincoming serial data signal without having to recover a clock from theincoming signal itself. As such, these techniques can be implemented ina less costly manner than existing such techniques. It is further notedthat, although specific embodiments have been illustrated and describedherein, it will be appreciated by those of ordinary skill in the artthat any arrangement calculated to achieve the same purpose may besubstituted for the specific embodiments shown. This application is thusintended to cover any adaptations or variations of embodiments of thepresent invention. As such and therefore, it is manifestly intended thatthis invention be limited only by the claims and equivalents thereof.

1. A method comprising: clamping, by a clamping circuit, a serial datasignal between a first high voltage level and a first low voltage level,to yield a clamped serial data signal; comparing, by a first comparatorcircuit, the clamped serial data signal to a second high voltage levelless than the first high voltage level, to yield a high output equal toone just when a voltage of the clamped serial data signal is greaterthan the second high voltage level; comparing, by a second comparatorcircuit, the clamped serial data signal to second low voltage levelgreater than the first low voltage level, to yield a low output equal toone just when the voltage of the clamped serial data signal is greaterthan the second low voltage level; and detecting, by an edge circuit, anedge of the serial data signal from the high output and the low output,wherein clamping the serial data signal comprises: when a voltage of theserial data signal is greater than the first high voltage level, settingthe voltage of the clamped serial data signal to the first high voltagelevel; and when the voltage of the serial data signal is less than thefirst low voltage level, setting the voltage of the clamped serial datasignal to the first low voltage level.
 2. (canceled)
 3. The method ofclaim 1, wherein detecting the edge comprises: when an output of a firstlogical test changes from zero to one, detecting the edge as a risingedge of the serial data signal; and when an output of a second logicaltest changes from zero to one, detecting the edge as a falling edge ofthe data signal.
 4. The method of claim 3, wherein the first logicaltest comprises a logical exclusive inverse OR (XNOR) operation of thehigh output and the low output being equal to one and a logical ANDoperation of the high output and the low output being equal to one, andwherein the second logical test comprises the logical XNOR operation ofthe high output and the low output being equal to one and a logical ORoperation of the high output and the low output being equal to zero. 5.The method of claim 3, wherein the first logical test comprises alogical AND operation of the high output and the low output being equalto one, and wherein the second logical test comprises a logical inverseOR (NOR) operation of the high output and the low output being equal toone.
 6. The method of claim 3, further comprising: tracking, by the edgecircuit, a length of time that elapsed between an immediately prior edgeof the serial data signal and the edge.
 7. The method of claim 6,further comprising: dividing, by the edge circuit, the length of time byan interval time length to determine a number of unit intervals (UIs)that elapsed between the immediately prior edge and the edge.
 8. Themethod of claim 7, further comprising: decoding, by a decoder circuit, anumber of logic zeros within the serial data signal as equal to thenumber of UIs when the edge is the rising edge such that the immediatelyprior edge is the falling edge; and decoding, by the decoder circuit, anumber of logic ones within the serial data signal as equal to thenumber of UIs when the edge is the falling edge such that theimmediately prior edge is the rising edge.
 9. The method of claim 8,further comprising: serially reassembling, by a reassembly circuit, theserial data signal from an output of the decoder circuit.
 10. The methodof claim 8, further comprising: reassembling, in parallel form, by areassembly circuit, the serial data signal from an output of the decodercircuit.
 11. A circuit comprising: a clamping circuit to generate aclamped serial data signal by clamping a serial data signal between afirst clamped voltage level and a second clamped voltage level; a highcomparator circuit to generate a high output of one just when a voltageof the clamped serial data signal is greater than a first comparisonvoltage level less than the first clamped voltage level; a lowcomparator circuit to generate a low output of one just when the voltageof the clamped serial data signal is greater than a second comparisonvoltage level greater than the second clamped voltage level; and an edgecircuit to detect an edge of the serial data signal from the high outputand the low output, wherein the edge circuit is to: when an output of afirst logical test changes from zero to one, detect the edge as a risingedge of the serial data signal; and when an output of a second logicaltest changes from zero to one, detect the edge as a falling edge of thedata signal.
 12. The circuit of claim 11, wherein the clamping circuitis to: when a voltage of the serial data signal is greater than thefirst clamped voltage level, clamp the voltage of the clamped serialdata signal to the first clamped voltage level; and when the voltage ofthe serial data signal is less than the second clamped voltage level,clamp the voltage of the clamped serial data signal to the secondclamped voltage level.
 13. (canceled)
 14. The circuit of claim 11,wherein the edge circuit comprises: an exclusive inverse OR (XNOR)circuit to perform a logical XNOR operation of the high output and thelow output; a first AND circuit to perform a logical AND operation ofthe high output and the low output; an OR circuit to perform a logicalOR operation of the high output and the low output; a second AND circuitto perform the logical AND operation of an output of the XNOR circuitand an output of the first AND circuit, to yield the output of the firstlogical test; and a third AND circuit to perform the logical ANDoperation of the output of the XNOR circuit and an output of the ORcircuit, to yield the output of the second logical test.
 15. The circuitof claim Error! Reference source not found., wherein the edge circuitcomprises: an AND circuit to perform a logical AND operation of the highoutput and the low output to yield the output of the first logical test;and an inverse OR (NOR) circuit to perform a logical NOR operation ofthe high output and the low output to yield the output of the secondlogical test.
 16. The circuit of claim Error! Reference source notfound., wherein the edge circuit is to: track a length of time thatelapsed between an immediately prior edge of the serial data signal andthe edge; and divide the length of time by an interval time length todetermine a number of unit intervals (UIs) that elapsed between theimmediately prior edge and the edge.
 17. The circuit of claim 16,further comprising: a decoder circuit to: decode a number of logic zeroswithin the serial data signal as equal to the number of UIs when theedge is the rising edge such that the immediately prior edge is thefalling edge, and decode a number of logic ones within the serial datasignal as equal to the number of UIs when the edge is the falling edgesuch that the immediately prior edge is the rising edge.
 18. The circuitof claim 17, further comprising: a reassembly circuit to reassemble theserial data signal from an output of the decoder circuit, in one ofserial form and parallel form.
 19. A circuit comprising: means forgenerating a clamped serial data signal by clamping a serial data signalbetween a first clamped voltage level and a second clamped voltagelevel; means for generating a high output of one just when a voltage ofthe clamped serial data signal is greater than a first comparisonvoltage level less than the first clamped voltage level; means forgenerating a low output of one just when the voltage of the clampedserial data signal is greater than a second comparison voltage levelgreater than the second clamped voltage level; and means for detectingan edge of the serial data signal from the high output and the lowoutput, wherein the means for detecting the edge of the serial datasignal is further for: when an output of a first logical test changesfrom zero to one, detecting the edge as a rising edge of the serial datasignal; and when an output of a second logical test changes from zero toone, detecting the edge as a falling edge of the data signal. 20.(canceled)